/********************************************
 * 功能说明: 
 * 模块名称: 
 * 系统名称: 
 * 软件版权: Frank
 * 系统版本: 1.0.0
 * 开发人员: Frank
 * 开发时间: 2019/8/21 19:17
 * 审核人员: 
 * 相关文档: 
 * 修改记录: 修改日期 修改人员 修改说明
 *********************************************/
package com.spring.arch.message.common.errorcode;

import com.spring.arch.common.exception.IErrorCode;
import com.spring.arch.common.exception.IErrorCode;

/**
 * 服务异常
 *
 * 参考 https://www.kancloud.cn/onebase/ob/484204 文章
 *
 * 一共 10 位，分成四段
 *
 * 第一段，1 位，类型
 *      1 - 业务级别异常
 *      2 - 系统级别异常
 * 第二段，3 位，服务编码
 *      001 - 系统服务
 *      002 - 工单服务
 *      003 - 人力资源
 *      004 - 资产服务
 *      005 - 财务服务
 *      006 - 现场服务
 *      007 - 资源管理
 *      008 - 设备服务
 *      009 - 基础服务
 *      010 - 客服服务
 *      010 - 客服服务
 *      010 - 客服服务
 *      010 - 客服服务
 *      ... - ...
 *      015 - JOB服务
 *      016 - Message服务
 *      ... - ...
 * 第三段，3 位，模块
 *      不限制规则。
 *      一般建议，每个系统里面，可能有多个模块，可以再去做分段。以用户系统为例子：
 *          001 - Auth 模块
 *          002 - User 模块
 *          003 - MobileCode 模块
 * 第四段，3 位，错误码
 *       不限制规则。
 *       一般建议，每个模块自增。
 * @author Frank
 * @version 1.0.0.1
 * @since JDK 1.8
 */
public enum MessageErrorCode implements IErrorCode {

    /**************通用模块*************/
    E1016000001(1016000001, "实体对象[%s]不存在"),

    /**************短信模块*************/
    E1016000101(1016000101, "该业务[%s]短信模板不存在"),
    E1016000102(1016000102, "短信发送失败"),
    E1016000103(1016000103, "短信验证码失效"),

    ;

    private int code;
    private String msg;

    /**
     * Msg string.
     *
     * @return the string
     */
    @Override
    public String msg() {
        return msg;
    }

    /**
     * Code int.
     *
     * @return the int
     */
    @Override
    public int code() {
        return code;
    }

    MessageErrorCode(int code, String msg) {
        this.code = code;
        this.msg = msg;
    }

}
